﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Autofac;
using Unis.Framework.Core.Infrastructure;
using Unis.Framework.Core.Infrastructure.DependencyManagement;

using ScmCostPlanService;
using ScmCostActualmainService;
using ScmCostActualService;
using ScmCostLedgerService;
using KingRoad.EPM.PersonnelLogBLL.UIRules;
using KingRoad.EPM.PersonnelLogDAL.BfUserService;
using KingRoad.EPM.PersonnelLogDAL.PlmConstructionlogcivilService;
using KingRoad.EPM.PersonnelLogDAL.PlmDailysupervisionService;
using KingRoad.EPM.PersonnelLogDAL.PlmDirectorlogService;
using KingRoad.EPM.PersonnelLogDAL.PlmSpecialtylogService;
using KingRoad.EPM.PersonnelLogDAL.PlmSupervisorlogService;
using KingRoad.EPM.PersonnelLogDAL.PlmTestlogService;
//using KingRoad.EPM.PersonnelLogDAL.ScmSafetyassessmentService;
//using KingRoad.EPM.PersonnelLogDAL.ScmSafetyknowledgeService;
//using KingRoad.EPM.PersonnelLogDAL.SafeProductionService;
//using KingRoad.EPM.PersonnelLogDAL.ScmAssessmentitemsService;
//using KingRoad.EPM.PersonnelLogDAL.ScmCostPlanMainService;
using KingRoad.EPM.PersonnelLogDAL.ScmSafetyconstructiondicService;
using KingRoad.EPM.PersonnelLogDAL.ProjectUnitService;
//using KingRoad.EPM.PersonnelLogDAL.SafesupervisionService;
//using KingRoad.EPM.PersonnelLogDAL.ScmAssessmentunitService;
//using KingRoad.EPM.PersonnelLogDAL.ScmAssessmentscoreService;
//using KingRoad.EPM.PersonnelLogDAL.SpecialEquipmentService;
//using KingRoad.EPM.PersonnelLogDAL.SpecialPersonnelService;
//using KingRoad.EPM.PersonnelLogDAL.RiskAssessService;
using KingRoad.EPM.PersonnelLogDAL.PlmPersonnelinfoService;
using KingRoad.EPM.PersonnelLogDAL.ScmDailycheckService;
using KingRoad.EPM.PersonnelLogDAL.ProjectSegmentService;
using KingRoad.EPM.PersonnelLogDAL.ScmAuditService;
using KingRoad.EPM.PersonnelLogDAL.PlmTurnoverService;
using KingRoad.EPM.PersonnelLogDAL.ProjectSupervisingService;
using KingRoad.EPM.PersonnelLogDAL.ProjectSupervisionService;
using KingRoad.EPM.PersonnelLogDAL.ProjectVerifyService;
//using KingRoad.EPM.PersonnelLogDAL.ScmSecurecostService;
//using KingRoad.EPM.PersonnelLogDAL.ScmPotentialAdviceService;
using KingRoad.EPM.PersonnelLogDAL.PlmPersonnelinforecordService;
//using KingRoad.EPM.PersonnelLogDAL.ScmThreePersonnelService;
using KingRoad.EPM.PersonnelLogDAL.PlmSpecialtylogSubService;
using KingRoad.EPM.PersonnelLogDAL.PlmSupervisorlogSubService;
using KingRoad.EPM.PersonnelLogDAL.PlmPersonLeaveService;
using KingRoad.EPM.PersonnelLogDAL.PlmSupervisorlogYBSubService;
using KingRoad.EPM.PersonnelLogDAL.PlmSpecialtylogYBSubService;

//using Unis.Framework.Core.Infrastructure.DependencyManagement;
using KingRoad.EPM.PersonnelLogDAL.CommonFileService;
using KingRoad.EPM.PersonnelLogDAL.PlmPersonnelAttendanceService;
using KingRoad.EPM.PersonnelLogDAL.PlmPersonnelWagesService;


namespace KingRoad.EPM.Web.Areas.PersonnelLog
{
    public class DependencyRegistrar : IDependencyRegistrar
    {
        #region IDependencyRegistrar 成员

        public int Order { get; private set; }

        public void Register(ContainerBuilder builder, ITypeFinder typeFinder)
        {
            #region 注册业务逻辑方法
            builder.RegisterType<ScmSafetyconstructiondicUIRule>();
            //builder.RegisterType<ScmSafetyknowledgeUIRule>();
            //builder.RegisterType<ScmSafeproductionUIRule>();
            //builder.RegisterType<ScmSafetyassessmentUIRule>();
            //builder.RegisterType<ScmAssessmentitemsUIRule>();
            builder.RegisterType<ProjectUnitUIRule>();

            //builder.RegisterType<ScmAssessmentunitUIRule>();
            //builder.RegisterType<ScmAssessmentscoreUIRule>();
            //builder.RegisterType<ScmSafesupervisionUIRule>();
            builder.RegisterType<PlmConstructionlogcivilUIRule>();
            //builder.RegisterType<ScmSpecialequipmentUIRule>();
            //builder.RegisterType<ScmSpecialpersonnelUIRule>();
            //builder.RegisterType<ScmRiskassessUIRule>();
            builder.RegisterType<ScmDailycheckUIRule>();
            builder.RegisterType<PlmPersonnelinfoUIRule>();
            builder.RegisterType<PlmPersonnelinforecordUIRule>();
            builder.RegisterType<PlmDailysupervisionUIRule>();
            builder.RegisterType<ProjectSegmentUIRule>();
            builder.RegisterType<PlmTurnoverUIRule>();
            builder.RegisterType<PlmTestlogUIRule>();
            builder.RegisterType<PlmDirectorlogUIRule>();
            builder.RegisterType<ScmAuditUIRule>();
            builder.RegisterType<PlmSpecialtylogUIRule>();
            builder.RegisterType<PlmSpecialtylogSubUIRule>();
            builder.RegisterType<PlmSpecialtylogYBSubUIRule>();
            builder.RegisterType<PlmSupervisorlogUIRule>();
            builder.RegisterType<PlmSupervisorlogSubUIRule>();
            builder.RegisterType<PlmSupervisorlogYBSubUIRule>();
            builder.RegisterType<ProjectSupervisingUIRule>();
            builder.RegisterType<ProjectSupervisionUIRule>();
            builder.RegisterType<ProjectVerifyUIRule>();
            //builder.RegisterType<ScmSecurecostUIRule>();
            //builder.RegisterType<ScmPotentialadviceUIRule>();
            //builder.RegisterType<ScmThreepersonnelUIRule>();
            builder.RegisterType<PlmPersonleaveUIRule>();
            builder.RegisterType<PlmPersonnelattendanceUIRule>();
            builder.RegisterType<PlmPersonnelwagesUIRule>();
            builder.RegisterType<CommonFileUIRule>();
            #endregion

            #region 数据访问层注册解析

            builder.RegisterType<BfUserService>().As<IBfUserService>();
            builder.RegisterType<ScmSafetyconstructiondicService>().As<IScmSafetyconstructiondicService>();
            //builder.RegisterType<ScmSafetyknowledgeService>().As<IScmSafetyknowledgeService>();
            //builder.RegisterType<ScmSafeproductionService>().As<IScmSafeproductionService>();
            //builder.RegisterType<ScmSafetyassessmentService>().As<IScmSafetyassessmentService>();
            //builder.RegisterType<ScmCostplanmainService>().As<IScmCostplanmainService>();
            //builder.RegisterType<ScmAssessmentitemsService>().As<IScmAssessmentitemsService>();
            builder.RegisterType<ProjectUnitService>().As<IProjectUnitService>();
            builder.RegisterType<ScmCostplanService>().As<IScmCostplanService>();
            builder.RegisterType<ScmCostactualmainService>().As<IScmCostactualmainService>();
            builder.RegisterType<ScmCostactualService>().As<IScmCostactualService>();
            //builder.RegisterType<ScmAssessmentunitService>().As<IScmAssessmentunitService>();
            //builder.RegisterType<ScmAssessmentscoreService>().As<IScmAssessmentscoreService>();
            builder.RegisterType<PlmConstructionlogcivilService>().As<IPlmConstructionlogcivilService>();
            //builder.RegisterType<ScmSafesupervisionService>().As<IScmSafesupervisionService>();
            //builder.RegisterType<ScmSpecialequipmentService>().As<IScmSpecialequipmentService>();
            //builder.RegisterType<ScmSpecialpersonnelService>().As<IScmSpecialpersonnelService>();
            //builder.RegisterType<ScmRiskassessService>().As<IScmRiskassessService>();
            //builder.RegisterType<ScmSafesupervisionService>().As<IScmSafesupervisionService>();
            //builder.RegisterType<ScmSpecialequipmentService>().As<IScmSpecialequipmentService>();
            //builder.RegisterType<ScmSpecialpersonnelService>().As<IScmSpecialpersonnelService>();
            builder.RegisterType<ScmDailycheckService>().As<IScmDailycheckService>();
            builder.RegisterType<ScmCostledgerService>().As<IScmCostledgerService>();
            builder.RegisterType<PlmDailysupervisionService>().As<IPlmDailysupervisionService>();
            builder.RegisterType<PlmPersonnelinfoService>().As<IPlmPersonnelinfoService>();
            builder.RegisterType<PlmPersonnelinforecordService>().As<IPlmPersonnelinforecordService>();
            builder.RegisterType<ProjectSegmentService>().As<IProjectSegmentService>();
            builder.RegisterType<PlmTurnoverService>().As<IPlmTurnoverService>();
            builder.RegisterType<PlmTestlogService>().As<IPlmTestlogService>();
            builder.RegisterType<PlmDirectorlogService>().As<IPlmDirectorlogService>();
            builder.RegisterType<ScmAuditService>().As<IScmAuditService>();
            builder.RegisterType<PlmSpecialtylogService>().As<IPlmSpecialtylogService>();
            builder.RegisterType<PlmSpecialtylogSubService>().As<IPlmSpecialtylogSubService>();
            builder.RegisterType<PlmSpecialtylogYBSubService>().As<IPlmSpecialtylogYBSubService>();
            builder.RegisterType<PlmSupervisorlogService>().As<IPlmSupervisorlogService>();
            builder.RegisterType<PlmSupervisorlogSubService>().As<IPlmSupervisorlogSubService>();
            builder.RegisterType<PlmSupervisorlogYBSubService>().As<IPlmSupervisorlogYBSubService>();
            builder.RegisterType<ProjectSupervisingService>().As<IProjectSupervisingService>();
            builder.RegisterType<ProjectSupervisionService>().As<IProjectSupervisionService>();
            builder.RegisterType<ProjectVerifyService>().As<IProjectVerifyService>();
            //builder.RegisterType<ScmSecurecostService>().As<IScmSecurecostService>();
            //builder.RegisterType<ScmPotentialadviceService>().As<IScmPotentialadviceService>();
            //builder.RegisterType<ScmThreepersonnelService>().As<IScmThreepersonnelService>();
            builder.RegisterType<PlmPersonleaveService>().As<IPlmPersonleaveService>();
            builder.RegisterType<PlmPersonnelattendanceService>().As<IPlmPersonnelattendanceService>();
            builder.RegisterType<PlmPersonnelwagesService>().As<IPlmPersonnelwagesService>();
            builder.RegisterType<CommonFileService>().As<ICommonFileService>();
            #endregion
        }

        #endregion
    }
}